Cet article a pour objectif de présenter brièvement PostgreSQL aux professionnels de l’informatique amenés à faire le choix d’un SGBD pour leur entreprise ou leur organisation.
Il est issu de mon expérience de plusieurs années comme administrateur de bases de données, de différentes ressources disponibles sur le Web, et de discussions avec la communauté française de PostgreSQL.
J’espère qu’il vous convaincra de ses qualités et vous donnera envie d’en savoir plus.
PostgreSQL est un des principaux SGBD-R (systèmes de gestion de bases de données relationnelles) du marché. Il est libre et gratuit.
On prononce Post-Grèss-Q-L.
Le site principal, en Anglais, est http://postgresql.org. Le site de la communauté française est sur http://www.postgresqlfr.org.
PostgreSQL est issu des recherches du professeur Michael Stonebraker à l’université de Californie à Berkeley menées dès 1986. Depuis 1996, le développement est mené par le PostgreSQL Developpement Group.
Ce groupe de développeurs de haut niveau est indépendant des grandes firmes informatiques. Il est néanmoins financé, entre autres, par Redhat et Fujitsu. Une communauté active contribue aussi à l'enrichissement de PostgreSQL.
PostgreSQL est disponible sous licence BSD. http://www.postgresql.org/licence.html
En substance, cette licence dit : « Nous mettons ce logiciel à votre disposition en l'état. Faites en ce que vous voulez. Vous pouvez le modifier ou le vendre si vous le souhaitez. Nous vous demandons juste de rappeler que nous en sommes les créateurs. »
La licence BSD est à mon sens moins contraignante que la licence GPL (de Linux par exemple), qui ne permet pas de vendre les programmes, et qui impose que les programmes modifiés ne peuvent être publiés que sous une même licence GPL.
Si vous êtes éditeur de logiciel, c’est un point important.
La version 8.0 de PostgreSQL vient de sortir.
Elle apporte en particulier 4 fonctions majeures :
Une version Windows native.
Le support des « tablespaces », pour une gestion fine de l’emplacement des données sur les disques durs.
La capacité de faire des sauvegardes incrémentales et des restaurations jusqu’à une date ou une transaction précise. Cette fonctionnalité est appelée PITR pour Point In Time Recovery. Avant la 8.0, il fallait obligatoirement sauvegarder et restaurer des bases complètes. Dans tous les cas, il s’agit de sauvegardes à chaud.
Les transactions imbriquées.
Déploiement illimité
Vous pouvez déployer PostgreSQL sur autant de serveurs avec autant de processeurs que vous le souhaitez.
Non seulement le coût d’investissement est nul, mais il n’y a pas de redevance annuelle à payer pour profiter du support ou pour profiter des nouvelles versions !Sur le long terme, l'économie est importante.
N’oublions pas néanmoins que comme tous les autres SGBD, PostgreSQL nécessite une prise en main par les administrateurs et les développeurs, puis une maintenance, ce qui a un coût.
Excellent support
Le support assuré par la communauté PostgreSQL est excellent et gratuit. Si vous préférez un support plus formel, de nombreuses sociétés de service peuvent vous offrir un contrat de support formel sur mesure.
Fiabilité et stabilité légendaires
Il est très courant que des sociétés rapportent que PostgreSQL n'a jamais crashé, même pendant des années. Pas une seule fois.
Conçu pour une grande capacité
De par sa conception, PostgreSQL ne craint pas les bases de données de grande taille ou ayant un grand nombre d’utilisateurs simultanés.
Plusieurs organisations l’utilisent pour des bases de données de plus d’un Teraoctet.
Le système mondial d’enregistrement des noms de domaine en « .org » est géré avec une base de données PostgreSQL par Afilias.
Outils graphiques de modélisation et d'administration
Plusieurs outils graphiques libres ou payants existent pour administrer les bases de données. Citons pgadminIII, pgaccess, phppgadmin, …
Très bonne compatibilité SQL
Comme beaucoup d'outils Open Source, PostgreSQL met un point d'honneur à suivre les normes, et en particulier les normes SQL 92 et 99. C'est un gage de pérennité et de portabilité.
Très bonne compatibilité avec les standards SQL 92 et 99
Règles.
Vues.
Triggers.
Procédures stockées.
Séquences .
Jointures externes.
Requêtes imbriquées.
Transactions imbriquées.
Intégrité référentielle (foreign keys).
Support pour les requêtes de type UNION, UNION ALL et EXCEPT.
Index partiels et indexes sur les fonctions.
Sauvegardes à chaud, complètes ou incrémentales.
Restaurations complètes ou partielles.
Import et Export de données très simple.
Réplication (solutions commerciales et non commerciales) permettant de dupliquer une base de données maître vers plusieurs machines esclaves : Slony-I et eRserver.
Hot stand-by (solutions commerciales)
Interfaces natives pour ODBC, JDBC, C, C++, PHP, Perl, TCL, ECPG, Python et Ruby.
Langages procéduraux. En particulier, PL/PGSQL est proche du langage PL/SQL d’Oracle.
Gestion de XML.
Parfaitement compatible ACID
Verrouillage à un niveau fin.
Support de Unicode.
Support SSL natif.
Identification Kerberos native
Extensions objet (héritage entre tables).
Possibilité d'ajouter des extensions à volonté : types utilisateur, fonctions utilisateur en C, …
PostgreSQL fonctionne sur les principales plates-formes Unix du marché :
Linux (PostgreSQL est en particulier optimisé pour le processeur AMD Opteron 64 bits)
AIX
Solaris
HP-UX
Mac OS X
Free BSD, Open BSD, NetBSD
Irix
Unixware
Pour Windows, depuis la version 8.0, PostgreSQL est entièrement et nativement disponible sous Windows.
Pour les versions précédentes:
Le client était disponible nativement pour les différentes versions de Windows.
Le serveur était disponible en utilisant Cygwin, une émulation GNU/Linux pour Windows. Cela fonctionnait bien mais n’était pas recommandé en production.
Bases de données Open Source :
MySQL : C’est la plus connue des bases de données Open Source. Elle est développée par la société MySQL AB. Elle est disponible selon une licence GPL pour une distribution gratuite, ou selon une licence payante classique pour une intégration dans un progiciel. MySQL a la réputation d’être très rapide pour des requêtes simples, mais d’être fonctionnellement moins complet que PostgreSQL. Lui manquent en particulier par rapport à PostgreSQL : les vues procédures stockées et triggers, un support complet de la norme SQL. Ces fonctions (présentes depuis des années dans PostgreSQL) sont promises par MySQL AB pour la version 5.0, qui est en version Alpha depuis près d'un an... http://www.mysql.com
SAP DB a fusionné avec MySQL début 2004 sous le nom de MaxDB. Son avenir ne semble pas très clair. http://www.sapdb.org/
Firebird est issu d’Interbase de Inprise/Borland. Firebird semble être un bon produit, mais il a du mal à se faire reconnaître. http://firebird.sourceforge.net/
Ingres vient d’être mis en Open Source par Computer Associates (http://www.ca.com). A suivre.
Il serait néanmoins tout à fait réducteur de limiter les concurrents de PostgreSQL au monde du logiciel libre.
De la même façon que Linux est aujourd’hui reconnu comme un système d’exploitation majeur, bien que libre et gratuit, PostgreSQL doit être comparé aux SGBDR commerciaux comme Oracle, Sybase, Microsoft SQL Server, IBM DB2.
D’une manière générale, PostgreSQL offre des fonctionnalités proches de ceux-ci, des performances comparables, et je crois qu’il est plus facile à utiliser et à administrer. PostgreSQL est totalement gratuit et bénéficie d’un excellent support, gratuit lui aussi, auprès de la communauté (voir en particulier http://archives.postgresql.org/pgsql-general/).
Par contre, certaines fonctionnalités avancées, comme la réplication multi maîtres ou le fonctionnement en cluster, manquent encore dans PostgreSQL. Soyons réalistes : les utilisez vous aujourd’hui dans votre SGBD commercial ?
PostgreSQL dispose bien entendu d'une documentation complète, principalement en anglais. De l'avis de certains, c'était un des points faibles des anciennes versions. La version 7.4 et maintenant la 8.0 ont beaucoup progressé sur ce point.
La communauté francophone de PostgreSQL travaille actuellement à la traduction. A ce jour, les programmes sont entièrement traduits et la documentation l'est à 80% environ.
En plus de la documentation, de nombreuses informations techniques sont disponibles sur les sites web de la communauté, comme http://techdocs.postgresql.org, ou http://www.varlena.org.
Des traductions et des communautés actives existent dans plusieurs autres langues.
PostgreSQL peut être téléchargé depuis un des sites miroirs: http://www.postgresql.org/mirrors-ftp.html
Des packages sont y disponibles pour les principales distributions de Linux.
Pour Windows, je recommande le programme d’installation pginstaller disponible sur les miroirs ou à l’adresse http://pgfoundry.org/projects/pginstaller/
Avec pginstaller, comme avec les packages linux, vous pouvez installer et démarrer PostgreSQL en 5 minutes, téléchargement compris (environ 15 Mo). Essayez d’en faire autant avec Oracle !
Le code source y est bien sûr disponible. Vous pourrez ainsi, si vous le souhaitez, personnaliser PostgreSQL, ou le compiler sur d’autres plates-formes moins courantes.
PostgreSQL est un SGBDR complet, stable, performant, riche de nombreuses années de développement, en évolution constante, soutenu par une communauté active.
Comme de nombreux logiciels libres (citons Apache, Linux, Tomcat, Open Office), c'est un produit mature, parfaitement à même de remplacer les produits commerciaux en entreprise, sans en avoir le coût, direct ou indirect.
Je vous invite à l'évaluer et à l'inclure dans vos développements et vos appels d'offres.
Vous ne serez pas déçus!
_________________________________
Auteur : Erwan DUROSELLE, erwan_duroselle (chez) hotmail point com
Date de dernière mise à jour : 18 janvier 2005
Si vous avez apprécié ce document, si vous avez relevé des erreurs, si vous traduisez, modifiez, republiez ce document, je serais heureux d'en être informé, afin de maintenir une version unique de ce document.
Ce document est Copyright (c) 2004-2005, Erwan DUROSELLE.
Ce document est fourni "en l'état", sans garantie aucune. L'auteur décline toute responsabilité pour l'usage que vous en faîtes. Vous pouvez utiliser, copier, modifier, traduire, distribuer ce document à votre guise, sans redevance et sans accord écrit. Vous devez néanmoins systématiquement inclure le texte de copyright ci-dessus et ce paragraphe.